[INFO] cloning repository https://github.com/hafley66/egui-bootcamp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hafley66/egui-bootcamp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhafley66%2Fegui-bootcamp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhafley66%2Fegui-bootcamp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 702f0f6dbb593d20f5df727f8b8ad2297302e99c
[INFO] testing hafley66/egui-bootcamp against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhafley66%2Fegui-bootcamp" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/hafley66/egui-bootcamp
[INFO] finished tweaking git repo https://github.com/hafley66/egui-bootcamp
[INFO] tweaked toml for git repo https://github.com/hafley66/egui-bootcamp written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/hafley66/egui-bootcamp on toolchain f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/hafley66/egui-bootcamp already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded insta v1.46.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3d71a877da8d885d37aad1a56def44f71a37fb2cc5707f344891334d4c9e1bb2
[INFO] running `Command { std: "docker" "start" "-a" "3d71a877da8d885d37aad1a56def44f71a37fb2cc5707f344891334d4c9e1bb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3d71a877da8d885d37aad1a56def44f71a37fb2cc5707f344891334d4c9e1bb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d71a877da8d885d37aad1a56def44f71a37fb2cc5707f344891334d4c9e1bb2", kill_on_drop: false }`
[INFO] [stdout] 3d71a877da8d885d37aad1a56def44f71a37fb2cc5707f344891334d4c9e1bb2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4bb4d88535512a69aeebffe2010c264271d211244a4c8157ab19253736511be7
[INFO] running `Command { std: "docker" "start" "-a" "4bb4d88535512a69aeebffe2010c264271d211244a4c8157ab19253736511be7", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling immutable-chunkmap v2.1.2
[INFO] [stderr]    Compiling tiny-skia-path v0.11.4
[INFO] [stderr]    Compiling emath v0.31.1
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling quick-xml v0.30.0
[INFO] [stderr]    Compiling tiny-skia v0.11.4
[INFO] [stderr]    Compiling ecolor v0.31.1
[INFO] [stderr]    Compiling accesskit_consumer v0.26.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling toml_edit v0.25.4+spec-1.1.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling glutin_glx_sys v0.6.1
[INFO] [stderr]    Compiling glutin_egl_sys v0.7.1
[INFO] [stderr]    Compiling xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling pxfm v0.1.28
[INFO] [stderr]    Compiling smithay-client-toolkit v0.20.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling epaint v0.31.1
[INFO] [stderr]    Compiling zvariant_derive v4.2.0
[INFO] [stderr]    Compiling zbus_macros v4.4.0
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling zvariant v4.2.0
[INFO] [stderr]    Compiling glutin v0.32.3
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling polling v3.11.0
[INFO] [stderr]    Compiling wayland-backend v0.3.14
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]    Compiling calloop v0.13.0
[INFO] [stderr]    Compiling wayland-client v0.31.13
[INFO] [stderr]    Compiling wayland-csd-frame v0.3.0
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling calloop v0.14.4
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling egui v0.31.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling zbus_names v3.0.0
[INFO] [stderr]    Compiling wayland-protocols v0.32.11
[INFO] [stderr]    Compiling wayland-cursor v0.31.13
[INFO] [stderr]    Compiling calloop-wayland-source v0.3.0
[INFO] [stderr]    Compiling calloop-wayland-source v0.4.1
[INFO] [stderr]    Compiling glutin-winit v0.5.0
[INFO] [stderr]    Compiling zbus_xml v4.0.0
[INFO] [stderr]    Compiling zbus v4.4.0
[INFO] [stderr]    Compiling webbrowser v1.2.0
[INFO] [stderr]    Compiling zbus-lockstep v0.4.4
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling zbus-lockstep-macros v0.4.4
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling egui_glow v0.31.1
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling wayland-protocols-wlr v0.3.11
[INFO] [stderr]    Compiling wayland-protocols-plasma v0.3.11
[INFO] [stderr]    Compiling wayland-protocols-experimental v20250721.0.1
[INFO] [stderr]    Compiling wayland-protocols-misc v0.3.11
[INFO] [stderr]    Compiling smithay-client-toolkit v0.19.2
[INFO] [stderr]    Compiling atspi-common v0.6.0
[INFO] [stderr]    Compiling sctk-adwaita v0.10.1
[INFO] [stderr]    Compiling winit v0.30.13
[INFO] [stderr]    Compiling smithay-clipboard v0.7.3
[INFO] [stderr]    Compiling atspi-proxies v0.6.0
[INFO] [stderr]    Compiling accesskit_atspi_common v0.10.1
[INFO] [stderr]    Compiling atspi-connection v0.6.0
[INFO] [stderr]    Compiling atspi v0.22.0
[INFO] [stderr]    Compiling accesskit_unix v0.13.1
[INFO] [stderr]    Compiling accesskit_winit v0.23.1
[INFO] [stderr]    Compiling egui-winit v0.31.1
[INFO] [stderr]    Compiling eframe v0.31.1
[INFO] [stderr]    Compiling egui-bootcamp v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex01_shapes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex05_animation.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::TAU`
[INFO] [stdout]  --> src/exercises/ex05_animation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::f32::consts::TAU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex06_overlay.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout]    |                     ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 50 -         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout] 50 +         let pulse = (time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5 ; // 0..1
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/exercises/ex01_shapes.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let offset = rect.min.to_vec2();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut clicks = 0;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn button_row(ui: &mut Ui) -> usize {
[INFO] [stdout]    |                   ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:32:20
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn styled_card(ui: &mut Ui) {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:47:18
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn data_grid(ui: &mut Ui) {
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn scroll_list(ui: &mut Ui) {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn sidebar_layout(ui: &mut Ui) {
[INFO] [stdout]    |                       ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:29:16
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:29:29
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:43:31
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:68:24
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stdout]    |                      ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:83:35
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]   --> src/exercises/ex04_interaction.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let (rect, response) = ui.allocate_exact_size(size, Sense::drag());
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/exercises/ex04_interaction.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let pos = state.drag_pos.get_or_insert(rect.center());
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]    --> src/exercises/ex04_interaction.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(200.0, 100.0), Sense::click());
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/exercises/ex05_animation.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let t = ui.ctx().animate_bool_with_time(Id::new("ex05_toggle"), state.toggle_on, 0.3);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `animated_x`
[INFO] [stdout]   --> src/exercises/ex05_animation.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let animated_x = ui.ctx().animate_value_with_time(
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_animated_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     for (i, &pos) in state.word_positions.iter().enumerate() {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pulse`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_pulse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let origin = state.word_positions[0];
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let n = targets.len();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:76:14
[INFO] [stdout]    |
[INFO] [stdout] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]    |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:118:60
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn animated_curves(ui: &mut Ui, state: &mut Ex06State, time: f32) {
[INFO] [stdout]     |                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let painter = ui.painter();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let origin = state.word_positions[0];
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:127:14
[INFO] [stdout]     |
[INFO] [stdout] 127 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let t = ui.ctx().animate_bool_with_time(id, state.active, 0.4);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:161:16
[INFO] [stdout]     |
[INFO] [stdout] 161 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(400.0, 300.0), Sense::click());
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex01_shapes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex05_animation.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::TAU`
[INFO] [stdout]  --> src/exercises/ex05_animation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::f32::consts::TAU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex06_overlay.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout]    |                     ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 50 -         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout] 50 +         let pulse = (time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5 ; // 0..1
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/exercises/ex01_shapes.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let offset = rect.min.to_vec2();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut clicks = 0;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn button_row(ui: &mut Ui) -> usize {
[INFO] [stdout]    |                   ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:32:20
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn styled_card(ui: &mut Ui) {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:47:18
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn data_grid(ui: &mut Ui) {
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn scroll_list(ui: &mut Ui) {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn sidebar_layout(ui: &mut Ui) {
[INFO] [stdout]    |                       ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:29:16
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:29:29
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:43:31
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:68:24
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stdout]    |                      ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:83:35
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]   --> src/exercises/ex04_interaction.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let (rect, response) = ui.allocate_exact_size(size, Sense::drag());
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/exercises/ex04_interaction.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let pos = state.drag_pos.get_or_insert(rect.center());
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]    --> src/exercises/ex04_interaction.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(200.0, 100.0), Sense::click());
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/exercises/ex05_animation.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let t = ui.ctx().animate_bool_with_time(Id::new("ex05_toggle"), state.toggle_on, 0.3);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `animated_x`
[INFO] [stdout]   --> src/exercises/ex05_animation.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let animated_x = ui.ctx().animate_value_with_time(
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_animated_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     for (i, &pos) in state.word_positions.iter().enumerate() {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pulse`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_pulse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let origin = state.word_positions[0];
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let n = targets.len();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:76:14
[INFO] [stdout]    |
[INFO] [stdout] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]    |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:118:60
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn animated_curves(ui: &mut Ui, state: &mut Ex06State, time: f32) {
[INFO] [stdout]     |                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let painter = ui.painter();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let origin = state.word_positions[0];
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:127:14
[INFO] [stdout]     |
[INFO] [stdout] 127 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let t = ui.ctx().animate_bool_with_time(id, state.active, 0.4);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:161:16
[INFO] [stdout]     |
[INFO] [stdout] 161 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(400.0, 300.0), Sense::click());
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `counter`, `text_input`, `items`, and `selected_index` are never read
[INFO] [stdout]   --> src/exercises/ex03_state.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Ex03State {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 16 |     pub counter: i32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 17 |     pub text_input: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 18 |     pub items: Vec<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 19 |     pub selected_index: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `animated_curves` is never used
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn animated_curves(ui: &mut Ui, state: &mut Ex06State, time: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 08s
[INFO] running `Command { std: "docker" "inspect" "4bb4d88535512a69aeebffe2010c264271d211244a4c8157ab19253736511be7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4bb4d88535512a69aeebffe2010c264271d211244a4c8157ab19253736511be7", kill_on_drop: false }`
[INFO] [stdout] 4bb4d88535512a69aeebffe2010c264271d211244a4c8157ab19253736511be7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 33069956a9c9f6f7665696814fd54851d32ff700ee169a4faf2efe8fc270bd73
[INFO] running `Command { std: "docker" "start" "-a" "33069956a9c9f6f7665696814fd54851d32ff700ee169a4faf2efe8fc270bd73", kill_on_drop: false }`
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex01_shapes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex05_animation.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::TAU`
[INFO] [stdout]  --> src/exercises/ex05_animation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::f32::consts::TAU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex06_overlay.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout]    |                     ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 50 -         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout] 50 +         let pulse = (time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5 ; // 0..1
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/exercises/ex01_shapes.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let offset = rect.min.to_vec2();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut clicks = 0;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn button_row(ui: &mut Ui) -> usize {
[INFO] [stdout]    |                   ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:32:20
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn styled_card(ui: &mut Ui) {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:47:18
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn data_grid(ui: &mut Ui) {
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn scroll_list(ui: &mut Ui) {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn sidebar_layout(ui: &mut Ui) {
[INFO] [stdout]    |                       ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:29:16
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:29:29
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:43:31
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:68:24
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stdout]    |                      ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:83:35
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]   --> src/exercises/ex04_interaction.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let (rect, response) = ui.allocate_exact_size(size, Sense::drag());
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/exercises/ex04_interaction.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let pos = state.drag_pos.get_or_insert(rect.center());
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]    --> src/exercises/ex04_interaction.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(200.0, 100.0), Sense::click());
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/exercises/ex05_animation.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let t = ui.ctx().animate_bool_with_time(Id::new("ex05_toggle"), state.toggle_on, 0.3);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `animated_x`
[INFO] [stdout]   --> src/exercises/ex05_animation.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let animated_x = ui.ctx().animate_value_with_time(
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_animated_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     for (i, &pos) in state.word_positions.iter().enumerate() {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pulse`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_pulse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let origin = state.word_positions[0];
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let n = targets.len();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:76:14
[INFO] [stdout]    |
[INFO] [stdout] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]    |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:118:60
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn animated_curves(ui: &mut Ui, state: &mut Ex06State, time: f32) {
[INFO] [stdout]     |                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let painter = ui.painter();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let origin = state.word_positions[0];
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:127:14
[INFO] [stdout]     |
[INFO] [stdout] 127 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let t = ui.ctx().animate_bool_with_time(id, state.active, 0.4);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:161:16
[INFO] [stdout]     |
[INFO] [stdout] 161 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(400.0, 300.0), Sense::click());
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex01_shapes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex05_animation.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::TAU`
[INFO] [stdout]  --> src/exercises/ex05_animation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::f32::consts::TAU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex06_overlay.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout]    |                     ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 50 -         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout] 50 +         let pulse = (time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5 ; // 0..1
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/exercises/ex01_shapes.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let offset = rect.min.to_vec2();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut clicks = 0;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn button_row(ui: &mut Ui) -> usize {
[INFO] [stdout]    |                   ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:32:20
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn styled_card(ui: &mut Ui) {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:47:18
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn data_grid(ui: &mut Ui) {
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn scroll_list(ui: &mut Ui) {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn sidebar_layout(ui: &mut Ui) {
[INFO] [stdout]    |                       ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:29:16
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:29:29
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:43:31
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:68:24
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stdout]    |                      ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:83:35
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]   --> src/exercises/ex04_interaction.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let (rect, response) = ui.allocate_exact_size(size, Sense::drag());
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/exercises/ex04_interaction.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let pos = state.drag_pos.get_or_insert(rect.center());
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]    --> src/exercises/ex04_interaction.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(200.0, 100.0), Sense::click());
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/exercises/ex05_animation.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let t = ui.ctx().animate_bool_with_time(Id::new("ex05_toggle"), state.toggle_on, 0.3);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `animated_x`
[INFO] [stdout]   --> src/exercises/ex05_animation.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let animated_x = ui.ctx().animate_value_with_time(
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_animated_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     for (i, &pos) in state.word_positions.iter().enumerate() {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pulse`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_pulse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let origin = state.word_positions[0];
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let n = targets.len();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:76:14
[INFO] [stdout]    |
[INFO] [stdout] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]    |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:118:60
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn animated_curves(ui: &mut Ui, state: &mut Ex06State, time: f32) {
[INFO] [stdout]     |                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let painter = ui.painter();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let origin = state.word_positions[0];
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:127:14
[INFO] [stdout]     |
[INFO] [stdout] 127 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let t = ui.ctx().animate_bool_with_time(id, state.active, 0.4);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:161:16
[INFO] [stdout]     |
[INFO] [stdout] 161 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(400.0, 300.0), Sense::click());
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `counter`, `text_input`, `items`, and `selected_index` are never read
[INFO] [stdout]   --> src/exercises/ex03_state.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Ex03State {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 16 |     pub counter: i32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 17 |     pub text_input: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 18 |     pub items: Vec<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 19 |     pub selected_index: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `animated_curves` is never used
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn animated_curves(ui: &mut Ui, state: &mut Ex06State, time: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling insta v1.46.3
[INFO] [stderr]    Compiling egui-bootcamp v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex01_shapes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex05_animation.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::TAU`
[INFO] [stdout]  --> src/exercises/ex05_animation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::f32::consts::TAU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex06_overlay.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout]    |                     ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 50 -         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout] 50 +         let pulse = (time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5 ; // 0..1
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> tests/exercises.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let (_, ctx) = run_exercise_frame(|ui| {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/exercises/ex01_shapes.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let offset = rect.min.to_vec2();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut clicks = 0;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn button_row(ui: &mut Ui) -> usize {
[INFO] [stdout]    |                   ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:32:20
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn styled_card(ui: &mut Ui) {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:47:18
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn data_grid(ui: &mut Ui) {
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn scroll_list(ui: &mut Ui) {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn sidebar_layout(ui: &mut Ui) {
[INFO] [stdout]    |                       ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:29:16
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:29:29
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:43:31
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:68:24
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stdout]    |                      ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:83:35
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]   --> src/exercises/ex04_interaction.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let (rect, response) = ui.allocate_exact_size(size, Sense::drag());
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/exercises/ex04_interaction.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let pos = state.drag_pos.get_or_insert(rect.center());
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]    --> src/exercises/ex04_interaction.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(200.0, 100.0), Sense::click());
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/exercises/ex05_animation.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let t = ui.ctx().animate_bool_with_time(Id::new("ex05_toggle"), state.toggle_on, 0.3);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `animated_x`
[INFO] [stdout]   --> src/exercises/ex05_animation.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let animated_x = ui.ctx().animate_value_with_time(
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_animated_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PI`
[INFO] [stdout]  --> examples/radar.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::f32::consts::{PI, TAU};
[INFO] [stdout]   |                        ^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     for (i, &pos) in state.word_positions.iter().enumerate() {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pulse`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_pulse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let origin = state.word_positions[0];
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let n = targets.len();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:76:14
[INFO] [stdout]    |
[INFO] [stdout] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]    |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:118:60
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn animated_curves(ui: &mut Ui, state: &mut Ex06State, time: f32) {
[INFO] [stdout]     |                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let painter = ui.painter();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let origin = state.word_positions[0];
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:127:14
[INFO] [stdout]     |
[INFO] [stdout] 127 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let t = ui.ctx().animate_bool_with_time(id, state.active, 0.4);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:161:16
[INFO] [stdout]     |
[INFO] [stdout] 161 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(400.0, 300.0), Sense::click());
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex01_shapes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex05_animation.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::TAU`
[INFO] [stdout]  --> src/exercises/ex05_animation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::f32::consts::TAU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `epaint::*`
[INFO] [stdout]  --> src/exercises/ex06_overlay.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use epaint::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout]    |                     ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 50 -         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout] 50 +         let pulse = (time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5 ; // 0..1
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:210:85
[INFO] [stdout]     |
[INFO] [stdout] 210 |         painter.line_segment([plot.left_bottom(), plot.right_bottom()], Stroke::new(1.0, axis_color));
[INFO] [stdout]     |                                                                                     ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:211:81
[INFO] [stdout]     |
[INFO] [stdout] 211 |         painter.line_segment([plot.left_bottom(), plot.left_top()], Stroke::new(1.0, axis_color));
[INFO] [stdout]     |                                                                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:216:25
[INFO] [stdout]     |
[INFO] [stdout] 216 |             Stroke::new(0.5, Color32::from_gray(35)),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:264:25
[INFO] [stdout]     |
[INFO] [stdout] 264 |             Stroke::new(2.0, Color32::from_rgb(0, 220, 0)),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:270:25
[INFO] [stdout]     |
[INFO] [stdout] 270 |             Stroke::new(1.0, Color32::from_rgb(255, 140, 40)),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:288:85
[INFO] [stdout]     |
[INFO] [stdout] 288 |         painter.line_segment([plot.left_bottom(), plot.right_bottom()], Stroke::new(1.0, axis_color));
[INFO] [stdout]     |                                                                                     ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:289:81
[INFO] [stdout]     |
[INFO] [stdout] 289 |         painter.line_segment([plot.left_bottom(), plot.left_top()], Stroke::new(1.0, axis_color));
[INFO] [stdout]     |                                                                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:292:25
[INFO] [stdout]     |
[INFO] [stdout] 292 |             Stroke::new(0.5, Color32::from_gray(35)),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex01_shapes.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/exercises/ex01_shapes.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let offset = rect.min.to_vec2();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut clicks = 0;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:351:29
[INFO] [stdout]     |
[INFO] [stdout] 351 |                 Stroke::new(0.4, grid_color),
[INFO] [stdout]     |                             ^^^ help: explicitly specify the type as `f32`: `0.4_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn button_row(ui: &mut Ui) -> usize {
[INFO] [stdout]    |                   ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:32:20
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn styled_card(ui: &mut Ui) {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:47:18
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn data_grid(ui: &mut Ui) {
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn scroll_list(ui: &mut Ui) {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex02_layout.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn sidebar_layout(ui: &mut Ui) {
[INFO] [stdout]    |                       ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:29:16
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:29:29
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:43:31
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:68:24
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:432:38
[INFO] [stdout]     |
[INFO] [stdout] 432 |                     if frac == 1.0 { 1.5 } else { 0.5 },
[INFO] [stdout]     |                                      ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stdout]    |                      ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex03_state.rs:83:35
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]   --> src/exercises/ex04_interaction.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let (rect, response) = ui.allocate_exact_size(size, Sense::drag());
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/exercises/ex04_interaction.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let pos = state.drag_pos.get_or_insert(rect.center());
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:432:51
[INFO] [stdout]     |
[INFO] [stdout] 432 |                     if frac == 1.0 { 1.5 } else { 0.5 },
[INFO] [stdout]     |                                                   ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:441:25
[INFO] [stdout]     |
[INFO] [stdout] 441 |             Stroke::new(0.5, dim),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:445:25
[INFO] [stdout]     |
[INFO] [stdout] 445 |             Stroke::new(0.5, dim),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:451:25
[INFO] [stdout]     |
[INFO] [stdout] 451 |             Stroke::new(0.3, Color32::from_rgba_unmultiplied(0, 40, 0, 80)),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `0.3_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:455:25
[INFO] [stdout]     |
[INFO] [stdout] 455 |             Stroke::new(0.3, Color32::from_rgba_unmultiplied(0, 40, 0, 80)),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `0.3_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:466:25
[INFO] [stdout]     |
[INFO] [stdout] 466 |             Stroke::new(1.0, Color32::from_rgba_unmultiplied(0, 200, 0, 100)),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:478:29
[INFO] [stdout]     |
[INFO] [stdout] 478 |                 Stroke::new(0.5, Color32::from_rgba_unmultiplied(0, 160, 0, alpha)),
[INFO] [stdout]     |                             ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:517:25
[INFO] [stdout]     |
[INFO] [stdout] 517 |             Stroke::new(2.0, vec_color),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:581:29
[INFO] [stdout]     |
[INFO] [stdout] 581 |                 Stroke::new(2.0, Color32::from_rgba_unmultiplied(255, 140, 0, halo_alpha)),
[INFO] [stdout]     |                             ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:587:56
[INFO] [stdout]     |
[INFO] [stdout] 587 |         painter.rect_stroke(btn_rect, 3.0, Stroke::new(1.5, border_color), StrokeKind::Outside);
[INFO] [stdout]     |                                                        ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> examples/radar.rs:606:25
[INFO] [stdout]     |
[INFO] [stdout] 606 |             Stroke::new(1.5, tri_color),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]    --> src/exercises/ex04_interaction.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(200.0, 100.0), Sense::click());
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/exercises/ex05_animation.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let t = ui.ctx().animate_bool_with_time(Id::new("ex05_toggle"), state.toggle_on, 0.3);
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `animated_x`
[INFO] [stdout]   --> src/exercises/ex05_animation.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let animated_x = ui.ctx().animate_value_with_time(
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_animated_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     for (i, &pos) in state.word_positions.iter().enumerate() {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pulse`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_pulse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let painter = ui.painter();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let origin = state.word_positions[0];
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let n = targets.len();
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/ex06_overlay.rs:76:14
[INFO] [stdout]    |
[INFO] [stdout] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]    |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:118:60
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn animated_curves(ui: &mut Ui, state: &mut Ex06State, time: f32) {
[INFO] [stdout]     |                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `painter`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let painter = ui.painter();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let origin = state.word_positions[0];
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:127:14
[INFO] [stdout]     |
[INFO] [stdout] 127 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let t = ui.ctx().animate_bool_with_time(id, state.active, 0.4);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response`
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:161:16
[INFO] [stdout]     |
[INFO] [stdout] 161 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(400.0, 300.0), Sense::click());
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `counter`, `text_input`, `items`, and `selected_index` are never read
[INFO] [stdout]   --> src/exercises/ex03_state.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Ex03State {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 16 |     pub counter: i32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 17 |     pub text_input: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 18 |     pub items: Vec<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 19 |     pub selected_index: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `animated_curves` is never used
[INFO] [stdout]    --> src/exercises/ex06_overlay.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn animated_curves(ui: &mut Ui, state: &mut Ex06State, time: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 11.26s
[INFO] running `Command { std: "docker" "inspect" "33069956a9c9f6f7665696814fd54851d32ff700ee169a4faf2efe8fc270bd73", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "33069956a9c9f6f7665696814fd54851d32ff700ee169a4faf2efe8fc270bd73", kill_on_drop: false }`
[INFO] [stdout] 33069956a9c9f6f7665696814fd54851d32ff700ee169a4faf2efe8fc270bd73
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e8315da005e2fdef085f149ceedc6e320a4497ce95be98d3f791889cafae0e41
[INFO] running `Command { std: "docker" "start" "-a" "e8315da005e2fdef085f149ceedc6e320a4497ce95be98d3f791889cafae0e41", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `epaint::*`
[INFO] [stderr]  --> src/exercises/ex01_shapes.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use epaint::*;
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `epaint::*`
[INFO] [stderr]  --> src/exercises/ex05_animation.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use epaint::*;
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::f32::consts::TAU`
[INFO] [stderr]  --> src/exercises/ex05_animation.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::f32::consts::TAU;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `epaint::*`
[INFO] [stderr]  --> src/exercises/ex06_overlay.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use epaint::*;
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/exercises/ex06_overlay.rs:50:21
[INFO] [stderr]    |
[INFO] [stderr] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stderr]    |                     ^                                                   ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 50 -         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stderr] 50 +         let pulse = (time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5 ; // 0..1
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `painter`
[INFO] [stderr]   --> src/exercises/ex01_shapes.rs:23:9
[INFO] [stderr]    |
[INFO] [stderr] 23 |     let painter = ui.painter();
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `painter`
[INFO] [stderr]   --> src/exercises/ex01_shapes.rs:39:9
[INFO] [stderr]    |
[INFO] [stderr] 39 |     let painter = ui.painter();
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `painter`
[INFO] [stderr]   --> src/exercises/ex01_shapes.rs:58:9
[INFO] [stderr]    |
[INFO] [stderr] 58 |     let painter = ui.painter();
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `painter`
[INFO] [stderr]   --> src/exercises/ex01_shapes.rs:78:9
[INFO] [stderr]    |
[INFO] [stderr] 78 |     let painter = ui.painter();
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `painter`
[INFO] [stderr]   --> src/exercises/ex01_shapes.rs:91:9
[INFO] [stderr]    |
[INFO] [stderr] 91 |     let painter = ui.painter();
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `offset`
[INFO] [stderr]    --> src/exercises/ex01_shapes.rs:112:9
[INFO] [stderr]     |
[INFO] [stderr] 112 |     let offset = rect.min.to_vec2();
[INFO] [stderr]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/exercises/ex02_layout.rs:19:9
[INFO] [stderr]    |
[INFO] [stderr] 19 |     let mut clicks = 0;
[INFO] [stderr]    |         ----^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ui`
[INFO] [stderr]   --> src/exercises/ex02_layout.rs:18:19
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub fn button_row(ui: &mut Ui) -> usize {
[INFO] [stderr]    |                   ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ui`
[INFO] [stderr]   --> src/exercises/ex02_layout.rs:32:20
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub fn styled_card(ui: &mut Ui) {
[INFO] [stderr]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ui`
[INFO] [stderr]   --> src/exercises/ex02_layout.rs:47:18
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub fn data_grid(ui: &mut Ui) {
[INFO] [stderr]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ui`
[INFO] [stderr]   --> src/exercises/ex02_layout.rs:56:20
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub fn scroll_list(ui: &mut Ui) {
[INFO] [stderr]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ui`
[INFO] [stderr]   --> src/exercises/ex02_layout.rs:66:23
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub fn sidebar_layout(ui: &mut Ui) {
[INFO] [stderr]    |                       ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ui`
[INFO] [stderr]   --> src/exercises/ex03_state.rs:29:16
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stderr]    |                ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]   --> src/exercises/ex03_state.rs:29:29
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub fn counter(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stderr]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ui`
[INFO] [stderr]   --> src/exercises/ex03_state.rs:43:18
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stderr]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]   --> src/exercises/ex03_state.rs:43:31
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub fn todo_list(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stderr]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ui`
[INFO] [stderr]   --> src/exercises/ex03_state.rs:68:24
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stderr]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]   --> src/exercises/ex03_state.rs:68:37
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub fn change_detector(ui: &mut Ui, state: &mut Ex03State) {
[INFO] [stderr]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ui`
[INFO] [stderr]   --> src/exercises/ex03_state.rs:83:22
[INFO] [stderr]    |
[INFO] [stderr] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stderr]    |                      ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]   --> src/exercises/ex03_state.rs:83:35
[INFO] [stderr]    |
[INFO] [stderr] 83 | pub fn derived_stats(ui: &mut Ui, state: &Ex03State) {
[INFO] [stderr]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `response`
[INFO] [stderr]   --> src/exercises/ex04_interaction.rs:32:16
[INFO] [stderr]    |
[INFO] [stderr] 32 |     let (rect, response) = ui.allocate_exact_size(size, Sense::drag());
[INFO] [stderr]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pos`
[INFO] [stderr]   --> src/exercises/ex04_interaction.rs:38:9
[INFO] [stderr]    |
[INFO] [stderr] 38 |     let pos = state.drag_pos.get_or_insert(rect.center());
[INFO] [stderr]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `response`
[INFO] [stderr]    --> src/exercises/ex04_interaction.rs:114:16
[INFO] [stderr]     |
[INFO] [stderr] 114 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(200.0, 100.0), Sense::click());
[INFO] [stderr]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]   --> src/exercises/ex05_animation.rs:37:9
[INFO] [stderr]    |
[INFO] [stderr] 37 |     let t = ui.ctx().animate_bool_with_time(Id::new("ex05_toggle"), state.toggle_on, 0.3);
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `animated_x`
[INFO] [stderr]   --> src/exercises/ex05_animation.rs:64:9
[INFO] [stderr]    |
[INFO] [stderr] 64 |     let animated_x = ui.ctx().animate_value_with_time(
[INFO] [stderr]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_animated_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `painter`
[INFO] [stderr]   --> src/exercises/ex06_overlay.rs:46:9
[INFO] [stderr]    |
[INFO] [stderr] 46 |     let painter = ui.painter();
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pos`
[INFO] [stderr]   --> src/exercises/ex06_overlay.rs:48:14
[INFO] [stderr]    |
[INFO] [stderr] 48 |     for (i, &pos) in state.word_positions.iter().enumerate() {
[INFO] [stderr]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pulse`
[INFO] [stderr]   --> src/exercises/ex06_overlay.rs:50:13
[INFO] [stderr]    |
[INFO] [stderr] 50 |         let pulse = ((time * TAU * 0.8 + phase_offset).sin() * 0.5 + 0.5); // 0..1
[INFO] [stderr]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_pulse`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `painter`
[INFO] [stderr]   --> src/exercises/ex06_overlay.rs:71:9
[INFO] [stderr]    |
[INFO] [stderr] 71 |     let painter = ui.painter();
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `origin`
[INFO] [stderr]   --> src/exercises/ex06_overlay.rs:72:9
[INFO] [stderr]    |
[INFO] [stderr] 72 |     let origin = state.word_positions[0];
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n`
[INFO] [stderr]   --> src/exercises/ex06_overlay.rs:74:9
[INFO] [stderr]    |
[INFO] [stderr] 74 |     let n = targets.len();
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/exercises/ex06_overlay.rs:76:10
[INFO] [stderr]    |
[INFO] [stderr] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stderr]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]   --> src/exercises/ex06_overlay.rs:76:14
[INFO] [stderr]    |
[INFO] [stderr] 76 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stderr]    |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `time`
[INFO] [stderr]    --> src/exercises/ex06_overlay.rs:118:60
[INFO] [stderr]     |
[INFO] [stderr] 118 | pub fn animated_curves(ui: &mut Ui, state: &mut Ex06State, time: f32) {
[INFO] [stderr]     |                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `painter`
[INFO] [stderr]    --> src/exercises/ex06_overlay.rs:123:9
[INFO] [stderr]     |
[INFO] [stderr] 123 |     let painter = ui.painter();
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_painter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `origin`
[INFO] [stderr]    --> src/exercises/ex06_overlay.rs:124:9
[INFO] [stderr]     |
[INFO] [stderr] 124 |     let origin = state.word_positions[0];
[INFO] [stderr]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/exercises/ex06_overlay.rs:127:14
[INFO] [stderr]     |
[INFO] [stderr] 127 |     for (i, &target) in targets.iter().enumerate() {
[INFO] [stderr]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]    --> src/exercises/ex06_overlay.rs:129:13
[INFO] [stderr]     |
[INFO] [stderr] 129 |         let t = ui.ctx().animate_bool_with_time(id, state.active, 0.4);
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `response`
[INFO] [stderr]    --> src/exercises/ex06_overlay.rs:161:16
[INFO] [stderr]     |
[INFO] [stderr] 161 |     let (rect, response) = ui.allocate_exact_size(Vec2::new(400.0, 300.0), Sense::click());
[INFO] [stderr]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response`
[INFO] [stderr] 
[INFO] [stderr] warning: `egui-bootcamp` (lib) generated 44 warnings (run `cargo fix --lib -p egui-bootcamp` to apply 44 suggestions)
[INFO] [stderr] warning: fields `counter`, `text_input`, `items`, and `selected_index` are never read
[INFO] [stderr]   --> src/exercises/ex03_state.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct Ex03State {
[INFO] [stderr]    |            --------- fields in this struct
[INFO] [stderr] 16 |     pub counter: i32,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 17 |     pub text_input: String,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 18 |     pub items: Vec<String>,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 19 |     pub selected_index: Option<usize>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `animated_curves` is never used
[INFO] [stderr]    --> src/exercises/ex06_overlay.rs:118:8
[INFO] [stderr]     |
[INFO] [stderr] 118 | pub fn animated_curves(ui: &mut Ui, state: &mut Ex06State, time: f32) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ctx`
[INFO] [stderr]   --> tests/exercises.rs:29:13
[INFO] [stderr]    |
[INFO] [stderr] 29 |     let (_, ctx) = run_exercise_frame(|ui| {
[INFO] [stderr]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `PI`
[INFO] [stderr]  --> examples/radar.rs:3:24
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::f32::consts::{PI, TAU};
[INFO] [stderr]   |                        ^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:210:85
[INFO] [stderr]     |
[INFO] [stderr] 210 |         painter.line_segment([plot.left_bottom(), plot.right_bottom()], Stroke::new(1.0, axis_color));
[INFO] [stderr]     |                                                                                     ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:211:81
[INFO] [stderr]     |
[INFO] [stderr] 211 |         painter.line_segment([plot.left_bottom(), plot.left_top()], Stroke::new(1.0, axis_color));
[INFO] [stderr]     |                                                                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:216:25
[INFO] [stderr]     |
[INFO] [stderr] 216 |             Stroke::new(0.5, Color32::from_gray(35)),
[INFO] [stderr]     |                         ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:264:25
[INFO] [stderr]     |
[INFO] [stderr] 264 |             Stroke::new(2.0, Color32::from_rgb(0, 220, 0)),
[INFO] [stderr]     |                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:270:25
[INFO] [stderr]     |
[INFO] [stderr] 270 |             Stroke::new(1.0, Color32::from_rgb(255, 140, 40)),
[INFO] [stderr]     |                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:288:85
[INFO] [stderr]     |
[INFO] [stderr] 288 |         painter.line_segment([plot.left_bottom(), plot.right_bottom()], Stroke::new(1.0, axis_color));
[INFO] [stderr]     |                                                                                     ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:289:81
[INFO] [stderr]     |
[INFO] [stderr] 289 |         painter.line_segment([plot.left_bottom(), plot.left_top()], Stroke::new(1.0, axis_color));
[INFO] [stderr]     |                                                                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:292:25
[INFO] [stderr]     |
[INFO] [stderr] 292 |             Stroke::new(0.5, Color32::from_gray(35)),
[INFO] [stderr]     |                         ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:351:29
[INFO] [stderr]     |
[INFO] [stderr] 351 |                 Stroke::new(0.4, grid_color),
[INFO] [stderr]     |                             ^^^ help: explicitly specify the type as `f32`: `0.4_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:432:38
[INFO] [stderr]     |
[INFO] [stderr] 432 |                     if frac == 1.0 { 1.5 } else { 0.5 },
[INFO] [stderr]     |                                      ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:432:51
[INFO] [stderr]     |
[INFO] [stderr] 432 |                     if frac == 1.0 { 1.5 } else { 0.5 },
[INFO] [stderr]     |                                                   ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:441:25
[INFO] [stderr]     |
[INFO] [stderr] 441 |             Stroke::new(0.5, dim),
[INFO] [stderr]     |                         ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:445:25
[INFO] [stderr]     |
[INFO] [stderr] 445 |             Stroke::new(0.5, dim),
[INFO] [stderr]     |                         ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:451:25
[INFO] [stderr]     |
[INFO] [stderr] 451 |             Stroke::new(0.3, Color32::from_rgba_unmultiplied(0, 40, 0, 80)),
[INFO] [stderr]     |                         ^^^ help: explicitly specify the type as `f32`: `0.3_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:455:25
[INFO] [stderr]     |
[INFO] [stderr] 455 |             Stroke::new(0.3, Color32::from_rgba_unmultiplied(0, 40, 0, 80)),
[INFO] [stderr]     |                         ^^^ help: explicitly specify the type as `f32`: `0.3_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:466:25
[INFO] [stderr]     |
[INFO] [stderr] 466 |             Stroke::new(1.0, Color32::from_rgba_unmultiplied(0, 200, 0, 100)),
[INFO] [stderr]     |                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:478:29
[INFO] [stderr]     |
[INFO] [stderr] 478 |                 Stroke::new(0.5, Color32::from_rgba_unmultiplied(0, 160, 0, alpha)),
[INFO] [stderr]     |                             ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:517:25
[INFO] [stderr]     |
[INFO] [stderr] 517 |             Stroke::new(2.0, vec_color),
[INFO] [stderr]     |                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:581:29
[INFO] [stderr]     |
[INFO] [stderr] 581 |                 Stroke::new(2.0, Color32::from_rgba_unmultiplied(255, 140, 0, halo_alpha)),
[INFO] [stderr]     |                             ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:587:56
[INFO] [stderr]     |
[INFO] [stderr] 587 |         painter.rect_stroke(btn_rect, 3.0, Stroke::new(1.5, border_color), StrokeKind::Outside);
[INFO] [stderr]     |                                                        ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stderr]    --> examples/radar.rs:606:25
[INFO] [stderr]     |
[INFO] [stderr] 606 |             Stroke::new(1.5, tri_color),
[INFO] [stderr]     |                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stderr] 
[INFO] [stderr] warning: `egui-bootcamp` (bin "egui-bootcamp" test) generated 46 warnings (44 duplicates)
[INFO] [stderr] warning: `egui-bootcamp` (lib test) generated 44 warnings (44 duplicates)
[INFO] [stderr] warning: `egui-bootcamp` (bin "egui-bootcamp") generated 46 warnings (46 duplicates)
[INFO] [stderr] warning: `egui-bootcamp` (test "exercises") generated 1 warning (run `cargo fix --test "exercises" -p egui-bootcamp` to apply 1 suggestion)
[INFO] [stderr] warning: `egui-bootcamp` (example "radar") generated 22 warnings (run `cargo fix --example "radar" -p egui-bootcamp` to apply 22 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.50s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/egui_bootcamp-b2c4bb1827cbe025)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/egui_bootcamp-d73ac702536dd459)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/exercises.rs (/opt/rustwide/target/debug/deps/exercises-40c2f92862098b8f)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test ex02b_styled_card_has_frame ... ok
[INFO] [stdout] test ex02a_button_row_has_five_buttons ... FAILED
[INFO] [stdout] test ex02d_scroll_list_produces_output ... FAILED
[INFO] [stdout] test ex03a_counter_increments ... ok
[INFO] [stdout] test ex03b_todo_list_add_remove ... ok
[INFO] [stdout] test ex03d_derived_stats ... ok
[INFO] [stdout] test ex04a_drag_position_updates ... ok
[INFO] [stdout] test ex01a_three_circles_exist ... FAILED
[INFO] [stdout] test ex01e_painted_text_exists ... FAILED
[INFO] [stdout] test ex06_word_positions_initialize ... ok
[INFO] [stdout] test ex01d_arrow_exists ... FAILED
[INFO] [stdout] test ex02c_data_grid_produces_output ... FAILED
[INFO] [stdout] test ex01a_three_circles_returns_bounding_rect ... FAILED
[INFO] [stdout] test ex01b_bezier_curve_exists ... FAILED
[INFO] [stdout] test ex05a_toggle_animation_range ... ok
[INFO] [stdout] test ex06_connecting_curves_produce_beziers ... FAILED
[INFO] [stdout] test ex06_pulsing_markers_produce_circles ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- ex02a_button_row_has_five_buttons stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'ex02a_button_row_has_five_buttons' (26) panicked at tests/exercises.rs:97:5:
[INFO] [stdout] Button row should produce shapes for 5 buttons, got 1 total shapes
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x622164b53a6a - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x622164b53a6a - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x622164b697ea - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x622164b697ea - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x622164b58352 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x622164b58352 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x622164b32a6f - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x622164b32a6f - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x622164b4bec9 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6221648ead6c - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x6221648ead6c - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x622164b4c082 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x622164b4c082 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x622164b32b28 - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x622164b27d09 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x622164b3383d - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x622164b69f6c - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6221648dd5a8 - exercises[96f3d05774a82fd9]::ex02a_button_row_has_five_buttons
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:97:5
[INFO] [stdout]   20:     0x6221648db267 - exercises[96f3d05774a82fd9]::ex02a_button_row_has_five_buttons::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:88:39
[INFO] [stdout]   21:     0x6221648d1dd6 - <exercises[96f3d05774a82fd9]::ex02a_button_row_has_five_buttons::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x6221648de04b - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6221648de04b - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x6221648eb83b - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x6221648eb83b - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x6221648e4f54 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x6221648e4f54 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x6221648ee442 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x6221648ee442 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x6221648ee442 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x622164b5337f - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   41:     0x622164b5337f - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7d1a5274caa4 - <unknown>
[INFO] [stdout]   43:     0x7d1a527d9a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- ex02d_scroll_list_produces_output stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'ex02d_scroll_list_produces_output' (29) panicked at tests/exercises.rs:136:5:
[INFO] [stdout] Scroll list should produce text, found 0. Implement scroll_list()!
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x622164b53a6a - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x622164b53a6a - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x622164b697ea - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x622164b697ea - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x622164b58352 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x622164b58352 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x622164b32a6f - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x622164b32a6f - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x622164b4bec9 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6221648ead6c - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x6221648ead6c - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x622164b4c082 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x622164b4c082 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x622164b32b28 - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x622164b27d09 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x622164b3383d - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x622164b69f6c - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6221648dd6ef - exercises[96f3d05774a82fd9]::ex02d_scroll_list_produces_output
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:136:5
[INFO] [stdout]   20:     0x6221648db297 - exercises[96f3d05774a82fd9]::ex02d_scroll_list_produces_output::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:130:39
[INFO] [stdout]   21:     0x6221648d1e16 - <exercises[96f3d05774a82fd9]::ex02d_scroll_list_produces_output::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x6221648de04b - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6221648de04b - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x6221648eb83b - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x6221648eb83b - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x6221648e4f54 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x6221648e4f54 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x6221648ee442 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x6221648ee442 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x6221648ee442 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x622164b5337f - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   41:     0x622164b5337f - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7d1a5274caa4 - <unknown>
[INFO] [stdout]   43:     0x7d1a527d9a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- ex01a_three_circles_exist stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'ex01a_three_circles_exist' (21) panicked at tests/exercises.rs:21:5:
[INFO] [stdout] Expected at least 3 circles, found 0. Implement three_circles()!
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x622164b53a6a - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x622164b53a6a - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x622164b697ea - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x622164b697ea - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x622164b58352 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x622164b58352 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x622164b32a6f - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x622164b32a6f - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x622164b4bec9 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6221648ead6c - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x6221648ead6c - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x622164b4c082 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x622164b4c082 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x622164b32b28 - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x622164b27d09 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x622164b3383d - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x622164b69f6c - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6221648dc589 - exercises[96f3d05774a82fd9]::ex01a_three_circles_exist
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:21:5
[INFO] [stdout]   20:     0x6221648db0b7 - exercises[96f3d05774a82fd9]::ex01a_three_circles_exist::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:16:31
[INFO] [stdout]   21:     0x6221648d1b96 - <exercises[96f3d05774a82fd9]::ex01a_three_circles_exist::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x6221648de04b - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6221648de04b - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x6221648eb83b - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x6221648eb83b - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x6221648e4f54 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x6221648e4f54 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x6221648ee442 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x6221648ee442 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x6221648ee442 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x622164b5337f - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   41:     0x622164b5337f - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7d1a5274caa4 - <unknown>
[INFO] [stdout]   43:     0x7d1a527d9a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- ex01e_painted_text_exists stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'ex01e_painted_text_exists' (25) panicked at tests/exercises.rs:79:5:
[INFO] [stdout] Expected painted text, found 0. Implement painted_text()!
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x622164b53a6a - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x622164b53a6a - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x622164b697ea - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x622164b697ea - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x622164b58352 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x622164b58352 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x622164b32a6f - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x622164b32a6f - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x622164b4bec9 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6221648ead6c - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x6221648ead6c - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x622164b4c082 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x622164b4c082 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x622164b32b28 - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x622164b27d09 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x622164b3383d - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x622164b69f6c - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6221648dc81f - exercises[96f3d05774a82fd9]::ex01e_painted_text_exists
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:79:5
[INFO] [stdout]   20:     0x6221648db117 - exercises[96f3d05774a82fd9]::ex01e_painted_text_exists::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:74:31
[INFO] [stdout]   21:     0x6221648d1c16 - <exercises[96f3d05774a82fd9]::ex01e_painted_text_exists::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x6221648de04b - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6221648de04b - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x6221648eb83b - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x6221648eb83b - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x6221648e4f54 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x6221648e4f54 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x6221648ee442 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x6221648ee442 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x6221648ee442 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x622164b5337f - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   41:     0x622164b5337f - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7d1a5274caa4 - <unknown>
[INFO] [stdout]   43:     0x7d1a527d9a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- ex01d_arrow_exists stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'ex01d_arrow_exists' (24) panicked at tests/exercises.rs:67:5:
[INFO] [stdout] Expected arrow shapes, found 0 non-trivial shapes. Implement arrow()!
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x622164b53a6a - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x622164b53a6a - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x622164b697ea - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x622164b697ea - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x622164b58352 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x622164b58352 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x622164b32a6f - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x622164b32a6f - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x622164b4bec9 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6221648ead6c - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x6221648ead6c - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x622164b4c082 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x622164b4c082 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x622164b32b28 - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x622164b27d09 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x622164b3383d - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x622164b69f6c - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6221648dbc27 - exercises[96f3d05774a82fd9]::ex01d_arrow_exists
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:67:5
[INFO] [stdout]   20:     0x6221648db027 - exercises[96f3d05774a82fd9]::ex01d_arrow_exists::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:57:24
[INFO] [stdout]   21:     0x6221648d1ad6 - <exercises[96f3d05774a82fd9]::ex01d_arrow_exists::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x6221648de04b - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6221648de04b - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x6221648eb83b - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x6221648eb83b - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x6221648e4f54 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x6221648e4f54 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x6221648ee442 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x6221648ee442 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x6221648ee442 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x622164b5337f - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   41:     0x622164b5337f - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7d1a5274caa4 - <unknown>
[INFO] [stdout]   43:     0x7d1a527d9a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- ex02c_data_grid_produces_output stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'ex02c_data_grid_produces_output' (28) panicked at tests/exercises.rs:123:5:
[INFO] [stdout] Grid should have 9 cells (3 headers + 6 data), got 0 text shapes. Implement data_grid()!
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x622164b53a6a - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x622164b53a6a - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x622164b697ea - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x622164b697ea - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x622164b58352 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x622164b58352 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x622164b32a6f - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x622164b32a6f - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x622164b4bec9 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6221648ead6c - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x6221648ead6c - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x622164b4c082 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x622164b4c082 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x622164b32b28 - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x622164b27d09 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x622164b3383d - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x622164b69f6c - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6221648dd41f - exercises[96f3d05774a82fd9]::ex02c_data_grid_produces_output
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:123:5
[INFO] [stdout]   20:     0x6221648db237 - exercises[96f3d05774a82fd9]::ex02c_data_grid_produces_output::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:118:37
[INFO] [stdout]   21:     0x6221648d1d96 - <exercises[96f3d05774a82fd9]::ex02c_data_grid_produces_output::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x6221648de04b - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6221648de04b - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x6221648eb83b - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x6221648eb83b - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x6221648e4f54 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x6221648e4f54 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x6221648ee442 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x6221648ee442 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x6221648ee442 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x622164b5337f - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   41:     0x622164b5337f - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7d1a5274caa4 - <unknown>
[INFO] [stdout]   43:     0x7d1a527d9a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- ex01a_three_circles_returns_bounding_rect stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'ex01a_three_circles_returns_bounding_rect' (22) panicked at tests/exercises.rs:31:9:
[INFO] [stdout] assertion `left != right` failed: three_circles() should return a non-empty bounding rect
[INFO] [stdout]   left: [[inf inf] - [-inf -inf]]
[INFO] [stdout]  right: [[inf inf] - [-inf -inf]]
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x622164b53a6a - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x622164b53a6a - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x622164b697ea - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x622164b697ea - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x622164b58352 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x622164b58352 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x622164b32a6f - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x622164b32a6f - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x622164b4bec9 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6221648ead6c - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x6221648ead6c - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x622164b4c082 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x622164b4c082 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x622164b32b28 - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x622164b27d09 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x622164b3383d - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x622164b69f6c - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x622164b69e53 - core[4a92201981c6b77a]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:434:23
[INFO] [stdout]   20:     0x6221648ccadf - core[4a92201981c6b77a]::panicking::assert_failed::<emath[12c2ce3e4d83fd8a]::rect::Rect, emath[12c2ce3e4d83fd8a]::rect::Rect>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x6221648db9e4 - exercises[96f3d05774a82fd9]::ex01a_three_circles_returns_bounding_rect::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:31:9
[INFO] [stdout]   22:     0x6221648ce8b7 - egui_bootcamp[ba96772822ea9c83]::run_exercise_frame::<exercises[96f3d05774a82fd9]::ex01a_three_circles_returns_bounding_rect::{closure#0}>::{closure#0}::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:15:21
[INFO] [stdout]   23:     0x6221648cea6b - <egui_bootcamp[ba96772822ea9c83]::run_exercise_frame<exercises[96f3d05774a82fd9]::ex01a_three_circles_returns_bounding_rect::{closure#0}>::{closure#0}::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<(&mut egui[3bc1bb8c79baf402]::ui::Ui,)>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x622164a16d40 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a> core[4a92201981c6b77a]::ops::function::FnOnce<(&'a mut egui[3bc1bb8c79baf402]::ui::Ui,), Output = ()>> as core[4a92201981c6b77a]::ops::function::FnOnce<(&mut egui[3bc1bb8c79baf402]::ui::Ui,)>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   25:     0x6221648cd8ca - <egui[3bc1bb8c79baf402]::containers::panel::CentralPanel>::show_inside_dyn::<()>::{closure#1}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.31.1/src/containers/panel.rs:1126:13
[INFO] [stdout]   26:     0x6221648ce8e2 - <<egui[3bc1bb8c79baf402]::containers::panel::CentralPanel>::show_inside_dyn<()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<(&mut egui[3bc1bb8c79baf402]::ui::Ui,)>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   27:     0x622164a16d40 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a> core[4a92201981c6b77a]::ops::function::FnOnce<(&'a mut egui[3bc1bb8c79baf402]::ui::Ui,), Output = ()>> as core[4a92201981c6b77a]::ops::function::FnOnce<(&mut egui[3bc1bb8c79baf402]::ui::Ui,)>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   28:     0x6221649b5e68 - <egui[3bc1bb8c79baf402]::containers::frame::Frame>::show_dyn::<()>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.31.1/src/containers/frame.rs:426:19
[INFO] [stdout]   29:     0x6221648cb514 - <egui[3bc1bb8c79baf402]::containers::frame::Frame>::show::<(), <egui[3bc1bb8c79baf402]::containers::panel::CentralPanel>::show_inside_dyn<()>::{closure#1}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.31.1/src/containers/frame.rs:416:14
[INFO] [stdout]   30:     0x6221648cbab1 - <egui[3bc1bb8c79baf402]::containers::panel::CentralPanel>::show_inside_dyn::<()>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.31.1/src/containers/panel.rs:1124:15
[INFO] [stdout]   31:     0x6221648cc5c5 - <egui[3bc1bb8c79baf402]::containers::panel::CentralPanel>::show_dyn::<()>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.31.1/src/containers/panel.rs:1156:35
[INFO] [stdout]   32:     0x6221648cc2a2 - <egui[3bc1bb8c79baf402]::containers::panel::CentralPanel>::show::<(), egui_bootcamp[ba96772822ea9c83]::run_exercise_frame<exercises[96f3d05774a82fd9]::ex01a_three_circles_returns_bounding_rect::{closure#0}>::{closure#0}::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.31.1/src/containers/panel.rs:1136:14
[INFO] [stdout]   33:     0x6221648cd7ce - egui_bootcamp[ba96772822ea9c83]::run_exercise_frame::<exercises[96f3d05774a82fd9]::ex01a_three_circles_returns_bounding_rect::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:13:14
[INFO] [stdout]   34:     0x6221648d4e40 - <egui[3bc1bb8c79baf402]::context::Context>::run::<egui_bootcamp[ba96772822ea9c83]::run_exercise_frame<exercises[96f3d05774a82fd9]::ex01a_three_circles_returns_bounding_rect::{closure#0}>::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.31.1/src/context.rs:830:13
[INFO] [stdout]   35:     0x6221648cb2a1 - egui_bootcamp[ba96772822ea9c83]::run_exercise_frame::<exercises[96f3d05774a82fd9]::ex01a_three_circles_returns_bounding_rect::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:10:22
[INFO] [stdout]   36:     0x6221648dde05 - exercises[96f3d05774a82fd9]::ex01a_three_circles_returns_bounding_rect
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:29:20
[INFO] [stdout]   37:     0x6221648db327 - exercises[96f3d05774a82fd9]::ex01a_three_circles_returns_bounding_rect::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:28:47
[INFO] [stdout]   38:     0x6221648d1ed6 - <exercises[96f3d05774a82fd9]::ex01a_three_circles_returns_bounding_rect::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   39:     0x6221648de04b - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x6221648de04b - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stdout]   41:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   42:     0x6221648eb83b - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   43:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   44:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   45:     0x6221648eb83b - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   46:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   47:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   48:     0x6221648e4f54 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   49:     0x6221648e4f54 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   50:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   51:     0x6221648ee442 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   52:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   53:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   54:     0x6221648ee442 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   55:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   56:     0x6221648ee442 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   57:     0x622164b5337f - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   58:     0x622164b5337f - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   59:     0x7d1a5274caa4 - <unknown>
[INFO] [stdout]   60:     0x7d1a527d9a64 - clone
[INFO] [stdout]   61:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- ex01b_bezier_curve_exists stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'ex01b_bezier_curve_exists' (23) panicked at tests/exercises.rs:50:5:
[INFO] [stdout] Expected at least 1 cubic bezier, found 0. Implement bezier_curve()!
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x622164b53a6a - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x622164b53a6a - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x622164b697ea - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x622164b697ea - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x622164b58352 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x622164b58352 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x622164b32a6f - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x622164b32a6f - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x622164b4bec9 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6221648ead6c - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x6221648ead6c - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x622164b4c082 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x622164b4c082 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x622164b32b28 - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x622164b27d09 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x622164b3383d - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x622164b69f6c - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6221648dc6f3 - exercises[96f3d05774a82fd9]::ex01b_bezier_curve_exists
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:50:5
[INFO] [stdout]   20:     0x6221648db0e7 - exercises[96f3d05774a82fd9]::ex01b_bezier_curve_exists::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:45:31
[INFO] [stdout]   21:     0x6221648d1bd6 - <exercises[96f3d05774a82fd9]::ex01b_bezier_curve_exists::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x6221648de04b - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6221648de04b - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x6221648eb83b - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x6221648eb83b - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x6221648e4f54 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x6221648e4f54 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x6221648ee442 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x6221648ee442 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x6221648ee442 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x622164b5337f - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   41:     0x622164b5337f - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7d1a5274caa4 - <unknown>
[INFO] [stdout]   43:     0x7d1a527d9a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- ex06_connecting_curves_produce_beziers stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'ex06_connecting_curves_produce_beziers' (35) panicked at tests/exercises.rs:264:5:
[INFO] [stdout] Expected 2 bezier curves (origin to 2 targets), found 0. Implement connecting_curves()!
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x622164b53a6a - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x622164b53a6a - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x622164b697ea - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x622164b697ea - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x622164b58352 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x622164b58352 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x622164b32a6f - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x622164b32a6f - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x622164b4bec9 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6221648ead6c - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x6221648ead6c - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x622164b4c082 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x622164b4c082 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x622164b32b28 - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x622164b27d09 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x622164b3383d - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x622164b69f6c - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6221648dddc5 - exercises[96f3d05774a82fd9]::ex06_connecting_curves_produce_beziers
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:264:5
[INFO] [stdout]   20:     0x6221648db2f7 - exercises[96f3d05774a82fd9]::ex06_connecting_curves_produce_beziers::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:249:44
[INFO] [stdout]   21:     0x6221648d1e96 - <exercises[96f3d05774a82fd9]::ex06_connecting_curves_produce_beziers::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x6221648de04b - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6221648de04b - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x6221648eb83b - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x6221648eb83b - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x6221648e4f54 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x6221648e4f54 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x6221648ee442 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x6221648ee442 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x6221648ee442 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x622164b5337f - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   41:     0x622164b5337f - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7d1a5274caa4 - <unknown>
[INFO] [stdout]   43:     0x7d1a527d9a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- ex06_pulsing_markers_produce_circles stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'ex06_pulsing_markers_produce_circles' (36) panicked at tests/exercises.rs:285:5:
[INFO] [stdout] Expected circles at each word position, found 0. Implement pulsing_markers()!
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x622164b53a6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x622164b53a6a - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x622164b53a6a - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x622164b697ea - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x622164b697ea - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x622164b58352 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x622164b58352 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x622164b32a6f - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x622164b32a6f - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x622164b4bec9 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6221648ead6c - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x6221648ead6c - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x622164b4c082 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x622164b4c082 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x622164b32b28 - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x622164b27d09 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x622164b3383d - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x622164b69f6c - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6221648dda2b - exercises[96f3d05774a82fd9]::ex06_pulsing_markers_produce_circles
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:285:5
[INFO] [stdout]   20:     0x6221648db2c7 - exercises[96f3d05774a82fd9]::ex06_pulsing_markers_produce_circles::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/exercises.rs:271:42
[INFO] [stdout]   21:     0x6221648d1e56 - <exercises[96f3d05774a82fd9]::ex06_pulsing_markers_produce_circles::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x6221648de04b - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6221648de04b - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x6221648eb83b - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x6221648eb83b - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x6221648eb83b - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x6221648eb83b - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x6221648e4f54 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x6221648e4f54 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x6221648ee442 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x6221648ee442 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x6221648ee442 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x6221648ee442 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x6221648ee442 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x622164b5337f - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   41:     0x622164b5337f - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7d1a5274caa4 - <unknown>
[INFO] [stdout]   43:     0x7d1a527d9a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     ex01a_three_circles_exist
[INFO] [stdout]     ex01a_three_circles_returns_bounding_rect
[INFO] [stdout]     ex01b_bezier_curve_exists
[INFO] [stderr] error: test failed, to rerun pass `--test exercises`
[INFO] [stdout]     ex01d_arrow_exists
[INFO] [stdout]     ex01e_painted_text_exists
[INFO] [stdout]     ex02a_button_row_has_five_buttons
[INFO] [stdout]     ex02c_data_grid_produces_output
[INFO] [stdout]     ex02d_scroll_list_produces_output
[INFO] [stdout]     ex06_connecting_curves_produce_beziers
[INFO] [stdout]     ex06_pulsing_markers_produce_circles
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 7 passed; 10 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "e8315da005e2fdef085f149ceedc6e320a4497ce95be98d3f791889cafae0e41", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e8315da005e2fdef085f149ceedc6e320a4497ce95be98d3f791889cafae0e41", kill_on_drop: false }`
[INFO] [stdout] e8315da005e2fdef085f149ceedc6e320a4497ce95be98d3f791889cafae0e41
